package cn.chengpengper.seckill.activity.domain.service;


import cn.chengpengper.seckill.activity.domain.model.entity.SeckillActivity;

import java.util.Date;
import java.util.List;

/**
 * @author chengpeng.hu
 */
public interface SeckillActivityDomainService {

    /**
     * 保存活动数据
     *
     * @param seckillActivity 活动实体
     */
    void saveSeckillActivity(SeckillActivity seckillActivity);

    /**
     * 根据状态获取活动列表
     *
     * @param status 活动状态
     * @return 活动列表
     */
    List<SeckillActivity> getSeckillActivityList(Integer status);

    /**
     * 根据时间和状态获取活动列表
     *
     * @param currentTime 时间
     * @param status      活动状态
     * @return 活动列表
     */
    List<SeckillActivity> getSeckillActivityBetweenStartTimeAndEndTime(Date currentTime, Integer status);

    /**
     * 根据活动ID获取活动详情
     *
     * @param id 活动ID
     * @return 活动详情
     */
    SeckillActivity getSeckillActivityById(Long id);

    /**
     * 更新活动状态
     *
     * @param status 活动状态
     * @param id     活动ID
     */
    void updateStatus(Integer status, Long id);
}
